package android.Spider;

import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;

public class Serializer
{
	private Serializer() {}

	////////////////////////////////////////////////////////////////////////////////
	///								ObjectStreams
	////////////////////////////////////////////////////////////////////////////////

	static void Store(ObjectOutputStream out, List<String> lstValues) throws IOException 
	{
		int nSize = lstValues.size();
		out.writeInt(nSize);
		for (int i = 0; i < nSize; ++i)
			out.writeObject(lstValues.get(i));
	}

	static ArrayList<String> LoadStrings(ObjectInputStream in) throws IOException 
	{
		ArrayList<String> lstValues = null;
		try {
			int nSize = in.readInt();
			lstValues = new ArrayList<String>(nSize);
			for (int i = 0; i < nSize; ++i)
				lstValues.add((String)in.readObject());
		}
		catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		
		return lstValues;
	}

	////////////////////////////////////////////////////////////////////////////////
	///								Bundle support
	////////////////////////////////////////////////////////////////////////////////

	public static void AddToBundle(Bundle bundle, String strRoot, List<String> lstValues)
	{
		int nSize = lstValues.size();
		for (int i = 0; i < nSize; ++i)
			bundle.putString(strRoot + i, lstValues.get(i));
	}

	public static ArrayList<String> BundleExtract(Bundle bundle, String strRoot)
	{
		ArrayList<String> lstItems = new ArrayList<String>();

		int i = 0;
		String strNext = bundle.getString(strRoot + "0");
		while (strNext != null)
		{
			lstItems.add(strNext);
			strNext = bundle.getString(strRoot + (++i));
		}
		
		return lstItems;		
	}

}
